package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 供应商对象 pcm_supplier
 * 
 * @author ruoyi
 * @date 2023-12-06
 */
public class PcmSupplier extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 供应商主键 */
    private Long supplierID2;

    /** 供应商全称 */
    @Excel(name = "供应商全称")
    private String supplierFullName;

    /** 供应商简称 */
    @Excel(name = "供应商简称")
    private String supplierShortName;

    /** 开户行 */
    @Excel(name = "开户行")
    private String bankName;

    /** 收款账户 */
    @Excel(name = "收款账户")
    private String accountNumber;

    /** 税种 */
    @Excel(name = "税种")
    private Long taxType;

    /** 税率 */
    @Excel(name = "税率")
    private Long taxRate;

    /** 供应产品类别 */
    @Excel(name = "供应产品类别")
    private Long supplyProductCategory;

    /** 主要供应产品 */
    @Excel(name = "主要供应产品")
    private String mainSupplyProduct;

    /** 公司人数 */
    @Excel(name = "公司人数")
    private Long companySize;

    /** 年营收 */
    @Excel(name = "年营收")
    private BigDecimal annualTurnover;

    /** 联系地址 */
    @Excel(name = "联系地址")
    private String address;

    /** 纳税人识别号 */
    @Excel(name = "纳税人识别号")
    private String taxpayerIdentificationNumber;

    /** 企业状态 */
    @Excel(name = "企业状态")
    private String companyStatus;

    /** 成立时间 */

    @Excel(name = "成立时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime establishmentDate;

    /** 法定代表人 */
    @Excel(name = "法定代表人")
    private String legalRepresentative;

    /** 注册资本 */
    @Excel(name = "注册资本")
    private String registeredCapital;

    /** 实缴资本 */
    @Excel(name = "实缴资本")
    private String actualCapital;

    /** 企业性质 */
    @Excel(name = "企业性质")
    private String companyNature;

    /** 工商信息更新时间 */
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime businessInfoUpdateTime;

    /** 注册地址 */
    @Excel(name = "注册地址")
    private String registeredAddress;

    /** 经营范围 */
    @Excel(name = "经营范围")
    private String businessScope;

    /** 企业查询结果 */
    @Excel(name = "企业查询结果")
    private String enterpriseQueryResult;

    /** 供应商状态 默认潜在供应商 */
    @Excel(name = "供应商状态 默认潜在供应商")
    private Integer supplierStates;

    /** 0未审核 1 审核 */
    @Excel(name = "0未审核 1 审核")
    private Integer isNot;

    /** 提交人ID员工表ID外键 */
    @Excel(name = "提交人ID员工表ID外键")
    private Long userId;

    /** 权限Id */
    @Excel(name = "权限Id")
    private Long permission;

    /** 提交时间 */
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime submissionTime;

    /** 更新时间 */
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;


    private List<SysUser> sysUserList;

    private List<SysDept> sysDeptList;

    public List<SysUser> getSysUserList() {
        return sysUserList;
    }

    public void setSysUserList(List<SysUser> sysUserList) {
        this.sysUserList = sysUserList;
    }

    public List<SysDept> getSysDeptList() {
        return sysDeptList;
    }

    public void setSysDeptList(List<SysDept> sysDeptList) {
        this.sysDeptList = sysDeptList;
    }

    public Long getSupplierID2() {
        return supplierID2;
    }

    public void setSupplierID2(Long supplierID2) {
        this.supplierID2 = supplierID2;
    }

    public String getSupplierFullName() {
        return supplierFullName;
    }

    public void setSupplierFullName(String supplierFullName) {
        this.supplierFullName = supplierFullName;
    }

    public String getSupplierShortName() {
        return supplierShortName;
    }

    public void setSupplierShortName(String supplierShortName) {
        this.supplierShortName = supplierShortName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public Long getTaxType() {
        return taxType;
    }

    public void setTaxType(Long taxType) {
        this.taxType = taxType;
    }

    public Long getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(Long taxRate) {
        this.taxRate = taxRate;
    }

    public Long getSupplyProductCategory() {
        return supplyProductCategory;
    }

    public void setSupplyProductCategory(Long supplyProductCategory) {
        this.supplyProductCategory = supplyProductCategory;
    }

    public String getMainSupplyProduct() {
        return mainSupplyProduct;
    }

    public void setMainSupplyProduct(String mainSupplyProduct) {
        this.mainSupplyProduct = mainSupplyProduct;
    }

    public Long getCompanySize() {
        return companySize;
    }

    public void setCompanySize(Long companySize) {
        this.companySize = companySize;
    }

    public BigDecimal getAnnualTurnover() {
        return annualTurnover;
    }

    public void setAnnualTurnover(BigDecimal annualTurnover) {
        this.annualTurnover = annualTurnover;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTaxpayerIdentificationNumber() {
        return taxpayerIdentificationNumber;
    }

    public void setTaxpayerIdentificationNumber(String taxpayerIdentificationNumber) {
        this.taxpayerIdentificationNumber = taxpayerIdentificationNumber;
    }

    public String getCompanyStatus() {
        return companyStatus;
    }

    public void setCompanyStatus(String companyStatus) {
        this.companyStatus = companyStatus;
    }

    public LocalDateTime getEstablishmentDate() {
        return establishmentDate;
    }

    public void setEstablishmentDate(LocalDateTime establishmentDate) {
        this.establishmentDate = establishmentDate;
    }

    public String getLegalRepresentative() {
        return legalRepresentative;
    }

    public void setLegalRepresentative(String legalRepresentative) {
        this.legalRepresentative = legalRepresentative;
    }

    public String getRegisteredCapital() {
        return registeredCapital;
    }

    public void setRegisteredCapital(String registeredCapital) {
        this.registeredCapital = registeredCapital;
    }

    public String getActualCapital() {
        return actualCapital;
    }

    public void setActualCapital(String actualCapital) {
        this.actualCapital = actualCapital;
    }

    public String getCompanyNature() {
        return companyNature;
    }

    public void setCompanyNature(String companyNature) {
        this.companyNature = companyNature;
    }

    public LocalDateTime getBusinessInfoUpdateTime() {
        return businessInfoUpdateTime;
    }

    public void setBusinessInfoUpdateTime(LocalDateTime businessInfoUpdateTime) {
        this.businessInfoUpdateTime = businessInfoUpdateTime;
    }

    public String getRegisteredAddress() {
        return registeredAddress;
    }

    public void setRegisteredAddress(String registeredAddress) {
        this.registeredAddress = registeredAddress;
    }

    public String getBusinessScope() {
        return businessScope;
    }

    public void setBusinessScope(String businessScope) {
        this.businessScope = businessScope;
    }

    public String getEnterpriseQueryResult() {
        return enterpriseQueryResult;
    }

    public void setEnterpriseQueryResult(String enterpriseQueryResult) {
        this.enterpriseQueryResult = enterpriseQueryResult;
    }

    public Integer getSupplierStates() {
        return supplierStates;
    }

    public void setSupplierStates(Integer supplierStates) {
        this.supplierStates = supplierStates;
    }

    public Integer getIsNot() {
        return isNot;
    }

    public void setIsNot(Integer isNot) {
        this.isNot = isNot;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getPermission() {
        return permission;
    }

    public void setPermission(Long permission) {
        this.permission = permission;
    }

    public LocalDateTime getSubmissionTime() {
        return submissionTime;
    }

    public void setSubmissionTime(LocalDateTime submissionTime) {
        this.submissionTime = submissionTime;
    }

    public LocalDateTime getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(LocalDateTime updatedTime) {
        this.updatedTime = updatedTime;
    }

    @Override
    public String toString() {
        return "PcmSupplier{" +
                "supplierID2=" + supplierID2 +
                ", supplierFullName='" + supplierFullName + '\'' +
                ", supplierShortName='" + supplierShortName + '\'' +
                ", bankName='" + bankName + '\'' +
                ", accountNumber='" + accountNumber + '\'' +
                ", taxType=" + taxType +
                ", taxRate=" + taxRate +
                ", supplyProductCategory=" + supplyProductCategory +
                ", mainSupplyProduct='" + mainSupplyProduct + '\'' +
                ", companySize=" + companySize +
                ", annualTurnover=" + annualTurnover +
                ", address='" + address + '\'' +
                ", taxpayerIdentificationNumber='" + taxpayerIdentificationNumber + '\'' +
                ", companyStatus='" + companyStatus + '\'' +
                ", establishmentDate=" + establishmentDate +
                ", legalRepresentative='" + legalRepresentative + '\'' +
                ", registeredCapital='" + registeredCapital + '\'' +
                ", actualCapital='" + actualCapital + '\'' +
                ", companyNature='" + companyNature + '\'' +
                ", businessInfoUpdateTime=" + businessInfoUpdateTime +
                ", registeredAddress='" + registeredAddress + '\'' +
                ", businessScope='" + businessScope + '\'' +
                ", enterpriseQueryResult='" + enterpriseQueryResult + '\'' +
                ", supplierStates=" + supplierStates +
                ", isNot=" + isNot +
                ", userId=" + userId +
                ", permission=" + permission +
                ", submissionTime=" + submissionTime +
                ", updatedTime=" + updatedTime +
                ", sysUserList=" + sysUserList +
                ", sysDeptList=" + sysDeptList +
                '}';
    }
}
